Communication of data over computer networks, particularly the Internet, has become an important, if not essential, way for many organizations and individuals to disseminate information. The Internet is a global network connecting millions of computers using a client-server architecture in which any computer connected to the Internet can potentially receive data from and send data to any other computer connected to the Internet. The Internet provides a variety of methods by which to communicate data, one of the most ubiquitous of which is the World Wide Web. Other methods for communicating data over the Internet include e-mail, usenet newsgroups, telnet and FTP.
The World Wide Web is a system of Internet servers, typically called “web servers”, that support the documents and applications present on the World Wide Web. Documents, known as web pages, may be transferred across the Internet according to the Hypertext Transfer Protocol (“HTTP”) while applications may be run by a Java virtual machine present in an internet browser. Web pages are often organized into web sites that represent a site or location on the world wide web. The web pages within a web site can link to one or more web pages, files, or applications at the same web site or at other web sites. A user can access web pages using a browser program and can “click on” links in the web pages being viewed to access other web pages.
Each time the user clicks on a link (or types an address into a browser program), the browser program generates a request and communicates it to a web server hosting web pages or applications associated with the web site. The web server retrieves the requested web page or application from an application server or Java server and returns it to the browser program. Web pages and applications can provide a variety of content, including text, graphics, interactive gaming and audio and video content.
Because web pages and associated applications can display content and receive information from users, web sites have become popular for enabling commercial transactions. As web sites become more important to commerce, businesses are increasingly interested in quickly providing responses to user's requests. One way of accelerating responses to requests on a web site is to cache the web pages or applications delivered to the requesting user in order to allow faster access time to this content when it is next requested.
Current caching methods, however, typically provide very limited functionality. This functionality may be particularly limited when it comes to dealing with changes in content. When an identical request is presented content may be served from the cache, even though this content may have been updated at the application server in the intervening time span; or content responsive to the request must once again be generated and cached, delaying the response to the request.
With the proliferation of information on the Internet, it is becoming increasingly difficult to prepare and deliver content to end users in an efficient and timely manner. Current content delivery systems employ various content publishing techniques. Typically, most web sites are produced by in-sequence publishing actions. For example, a set of web pages can be generated by an application server and made available to a web server for appropriate actions. In other words, to implement a web site, a set of web pages may be produced at an application layer and published at a presentation layer.
In response to an end user request, the web server may serve one or more web pages to the end user. As repeatedly serving frequently requested web pages can consume resources, dynamically generated web pages can be cached to quickly service user requests and conserve processing and network resources. Thus, when an end user elects to “refresh” previously delivered content (e.g., by clicking a “Refresh” button on a browser application's menu), the same content may be retrieved from a cache and again delivered to that end user.
All of the web pages implementing a web site can be updated as needed or reproduced at some regular interval to incorporate changes in the content. However, in conventional content delivery systems, all of the web pages implementing the web site may have to be reproduced. Moreover, changes made to the content may only be taken into account at the intervals at which the web pages are reproduced. Thus, web pages delivered to an end user may, for a period of time, contain stale content. In addition, reproducing web pages for each and every web site affected by certain changes may require a long period of time.
Another content publishing technique involves portal applications or standard Java® service or Server Page (JSP) applications. These applications typically have dynamic scripting capability that can work in tandem with hypertext markup language (HTML) code to separate the logic of a page from its static elements (e.g., the actual design layout and display of the page). The extracted portion of the page can then be used to make dynamic database queries and assemble pages on-the-fly accordingly. However, the logic and the content underlying the pages assembled on-the-fly can be modified after the pages are delivered, thereby allowing stale content to remain in circulation.